<template>
  <div class="mui-numbox" data-numbox-min="1" data-numbox-max="9">
    <button class="mui-btn mui-btn-numbox-minus" type="button">-</button>
    <input
      id="test"
      class="mui-input-numbox"
      type="number"
      value="1"
      @change="onChange"
      ref="numbox"
    />
    <button class="mui-btn mui-btn-numbox-plus" type="button">+</button>
  </div>
</template>

<script>
import mui from "../../lib/mui/js/mui.min.js"; // 坑啊，不选min的脚本，步长就会有问题

export default {
  mounted() {
    mui(".mui-numbox").numbox();
    mui(".mui-numbox")
      .numbox()
      .setOption("max", this.stockNum);
    // console.log(this.stockNum);
  },
  methods: {
    // 此处用了多种方式试了下，比如v-model，不行。暂时只有这种直接访问dom的方式可以。
    onChange() {
      //   console.log(this.$refs.numbox.value);
      this.$emit("callNumbox", this.$refs.numbox.value);
      //   console.log(this.num);
    }
  },
  props: ["stockNum"],
  watch: {
    // 解决库存量数据获取的问题，由于采用了异步方式获取，所以在mounted中，无法获取此数字
    // 需要接触监听数据的方式，注意函数的编写规范

    stockNum: function(newVal, oldVal) {
      mui(".mui-numbox")
        .numbox()
        .setOption("max", newVal);
    }
  }
};
</script>

<style lang="scss" scoped>
</style>